package top.fzqblog.thistest

/**
 * Created by 抽离 on 2017/8/3 0003.
 */
class A { // implicit label @A
    inner class B { // implicit label @B
        fun Int.foo() { // implicit label @foo
            val a = this@A // A's this
            val b = this@B // B's this
            val c = this // foo()'s receiver, an Int
            val d= this@foo // foo()'s receiver, an Int
            println("a：" + a)
            println("b：" + b)
            println("c：" + c)
            println("d：" + d)
        }

        fun print(){
            1.foo()
        }
    }
}

fun main(args: Array<String>) {
    val a = A()
    a.B().print()
}